package handle

import (
	"fmt"
	"gitee.com/git_public/vfaith/sugar"
	"html/template"
	"time"
)

// 定义加法函数
func add(a, b int) int {
	return a + b
}

// 定义减法函数
func sub(a, b int) int {
	return a - b
}

// 定义最小值函数
func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}

// 定义最大值函数
func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

// 定义序列函数
func seq(start, end int) []int {
	s := make([]int, end-start+1)
	for i := range s {
		s[i] = start + i
	}
	return s
}

// GetTemplateFunc 返回包含模板函数的 FuncMap
func GetTemplateFunc() template.FuncMap {
	return template.FuncMap{
		"add": add,
		"sub": sub,
		"min": min,
		"max": max,
		"seq": seq,
		//"model": func(data vine.QueryModel) map[string]interface{} {
		//	return data.TransferToMap()
		//},
		"formatGlobal": func(v any) string {
			if v == nil {
				return ""
			}
			switch t := v.(type) {
			case time.Time:
				return sugar.FormatTimeToDateTime(t)
			default:
				return fmt.Sprintf("%v", t)
			}
		},
		"formatDateOnly": func(t time.Time) string {
			return sugar.FormatTimeToDateOnly(t)
		},
		"formatDateTime": func(t time.Time) string {
			return sugar.FormatTimeToDateTime(t)
		},
	}
}
